home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-01-27 | 6.9 KB | 268 lines |
- 10 'COAXSTUB - Stubs for Coaxial Lines - 03 JUN 96 rev.27 SEP 96
- 20 CLS:KEY OFF
- 30 IF EX$=""THEN EX$="EXIT"
- 40 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 50 COMMON EX$
- 60 COLOR 7,0,1
- 70 ON ERROR GOTO 100
- 80 GOTO 130
- 90 '
- 100 IF ERR=1 AND ERL=1500 THEN COLOR 7,0:RESUME 1820
- 110 BEEP:PRINT "Error";ERR;"in line";ERL:END
- 120 '
- 130 PI=3.14159
- 140 UL$=STRING$(80,205)
- 150 L$="#####.###"
- 160 V$="####.###"
- 170 X$=STRING$(80,32)
- 180 DIM C$(50,7) 'coax data
- 190 '
- 200 '.....read data
- 210 OPEN"I",1,"\data\coaxial.fil"
- 220 N=50 'no.of data groups
- 230 FOR Z=1 TO N
- 240 FOR Y=1 TO 7
- 250 INPUT#1, C$(Z,Y)
- 260 NEXT Y
- 270 NEXT Z
- 280 CLOSE
- 290 '
- 300 '.....start
- 310 CLS
- 320 B=0:C=0:E=0:I=0:O=0:U=0:V=0:ZO=0
- 330 COLOR 15,2
- 340 PRINT " STUBS for COAXIAL TRANSMISSION LINES";
- 350 PRINT TAB(57)"by George Murphy VE3ERP ";
- 360 COLOR 1,0:PRINT STRING$(80,223);
- 370 COLOR 7,0
- 380 GOSUB 2320
- 390 PRINT UL$;
- 400 PRINT " Press number in < > to choose standard units of measure:"
- 410 PRINT UL$;
- 420 PRINT " < 1 > Metric"
- 430 PRINT " < 2 > U.S.A./Imperial"
- 440 PRINT UL$;
- 450 PRINT " or Press < 0 > to EXIT....."
- 460 Z$=INKEY$
- 470 IF Z$="0"THEN CLS:CHAIN GO$
- 480 IF Z$="1"THEN UM=0.3048:UM$="m.":GOTO 520
- 490 IF Z$="2"THEN UM=1:UM$="ft.":GOTO 520
- 500 GOTO 460
- 510 '
- 520 '.....transmission line stubs
- 530 CLS
- 540 LOCATE 1:COLOR 0,7:T=1
- 550 LOCATE ,T:PRINT " COAXIAL TRANSMISSION LINE STUBS "
- 560 LOCATE ,T:PRINT " CALLDEFSNGSOUNDSOUND Lg < W/4 SOUNDSOUNDDEFDBLCALL CALLDEFSNGSOUNDSOUND Lg < W/4 SOUNDSOUNDDEFDBLCALL "
- 570 LOCATE ,T:PRINT " ERRTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION ERRTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION "
- 580 LOCATE ,T:PRINT " VARPTRSOUNDSOUNDDEFDBL SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND VARPTRSOUNDSOUNDDEFDBL SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDCOLOR "
- 590 LOCATE ,T:PRINT " Z in ERLFNTHENTHENTHENTHENshieldTHENTHENTHENTHENTHENSAVE Z in ERLFNTHENTHENTHENTHENshieldTHENTHENTHENTHENFNSAVECALL "
- 600 LOCATE ,T:PRINT " CLSSOUNDSOUNDDEFDBL SOUND' CLSSOUNDSOUNDDEFDBL SOUND' CLSSOUND' "
- 610 COLOR 7,0
- 620 LOCATE ,T:PRINT "CSRLIN INDUCTIVE (open) STUB CSRLIN CAPACITIVE (shorted) STUB CSRLIN"
- 630 COLOR 0,7
- 640 LOCATE ,T:PRINT " (ref. 1996 ARRL HANDBOOK, pp.16.21 & 16.22) "
- 650 COLOR 7,0
- 660 T=55:LOCATE 3
- 670 LOCATE ,T:PRINT "Transmission line stubs "
- 680 LOCATE ,T:PRINT "should extend away from "
- 690 LOCATE ,T:PRINT "the line at an angle as "
- 700 LOCATE ,T:PRINT "close to 90<UNK! {00F8}> as possible."
- 710 LOCATE 9:PRINT UL$;
- 720 GOSUB 750
- 730 GOTO 870
- 740 '
- 750 '.....cable table
- 760 FOR Z=1 TO 9
- 770 FOR Y=0 TO 36 STEP 9
- 780 Z$=STR$(Z+Y)':IF LEN(Z$)<3 THEN Z$=" "+Z$:MID$(Z$,2)="0"
- 790 Y$=Z$+": "+C$(Z+Y,1)
- 800 IF LEN(Y$)<16 THEN Y$=Y$+" ":GOTO 800
- 810 IF Z<10 AND Y=0 THEN Y$=LEFT$(Y$,15)
- 820 IF Z+Y=45 THEN 840
- 830 PRINT Y$;
- 840 NEXT Y
- 850 NEXT Z
- 860 RETURN
- 870 PRINT UL$;
- 880 '
- 890 INPUT " ENTER: An item number from above list to select coaxial cable";N
- 900 IF N>=1 AND N<=44 THEN 920
- 910 BEEP:LOCATE CSRLIN-1:PRINT X$;:LOCATE CSRLIN-1:GOTO 890
- 920 VIEW PRINT 10 TO 24:CLS:VIEW PRINT
- 930 FOR Z=1 TO 8:LOCATE Z,55:PRINT STRING$(26,32);:NEXT Z
- 940 T$=C$(N,1)
- 950 ZIN=VAL(C$(N,5))
- 960 E=VAL(C$(N,3))
- 970 VF=1/SQR(E)
- 980 COLOR 15,4
- 990 LOCATE 1,54:PRINT " ";T$;" COAX CABLE "
- 1000 COLOR 7,0
- 1010 LOCATE ,55:PRINT "Impedance Z (ohms) =";USING"###.#";ZIN
- 1020 LOCATE ,55:PRINT "Dielectric constant=";USING"##.##";E
- 1030 LOCATE ,55:PRINT "Velocity factor....=";USING".####";VF
- 1040 LOCATE ,55:PRINT "XL= Inductive Reactance
- 1050 LOCATE ,55:PRINT " L= Inductance"
- 1060 LOCATE ,55:PRINT "XC= Capacitive Reactance"
- 1070 LOCATE ,55:PRINT " C= Capacitance"
- 1080 LOCATE 10
- 1090 '
- 1100 INPUT " ENTER: Frequency in MHz......";FO
- 1110 COLOR 7,0
- 1120 VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 10
- 1130 WL=300/FO 'wavelength in free space
- 1140 W=300/(SQR(E)*FO) 'electrical wavelength
- 1150 '
- 1160 T=9
- 1170 PRINT TAB(T)"Frequency.......................";USING V$;FO;
- 1180 PRINT " MHz =";
- 1190 PRINT USING V$;300/FO;:PRINT " metres"
- 1200 PRINT TAB(T)"Electrical wavelength.........w=";USING V$;W;
- 1210 PRINT " metres =";USING V$;W/0.3048;:PRINT " feet"
- 1220 PRINT TAB(T)"Electrical DEFSTR-wavelength.....w/4=";USING V$;W/4;
- 1230 PRINT " metres =";USING V$;W/4/0.3048;:PRINT " feet"
- 1240 PRINT UL$;
- 1250 PRINT " TYPICAL VALUES:";TAB(38)"INDUCTIVE STUB";
- 1260 PRINT TAB(58)"CAPACITIVE STUB"
- 1270 PRINT TAB(9)"Lg/w";TAB(16)"Lg(m.)";TAB(25)"Lg(ft)";
- 1280 PRINT TAB(38);"XL(-)";TAB(48)"L(>H)";TAB(58)"XC(-)";TAB(68)"C(pF)"
- 1290 '
- 1300 K=-0.05
- 1310 FOR Z=1 TO 7
- 1320 IF Z=4 OR Z=5 THEN K=K+0.025:GOTO 1340
- 1330 K=K+0.05
- 1340 LG=K*W
- 1350 '
- 1360 IF K=0 THEN XL=0:XC=10^6:GOTO 1410
- 1370 IF K=0.25 THEN XC=0:XL=10^6:GOTO 1410
- 1380 XC=ZIN/TAN(2*PI*LG/W): C=10^6/(2*PI*FO*XC)
- 1390 XL=ZIN/(1/TAN(2*PI*LG/W)): L=XL/(2*PI*FO)
- 1400 '
- 1410 PRINT TAB(9)USING ".###";K;
- 1420 PRINT TAB(13);USING L$;LG;
- 1430 PRINT TAB(22);USING L$;LG/0.3048;
- 1440 IF K<=0 THEN PRINT TAB(38)"- 0 - - 0 - - / - - 0 -":GOTO 1500
- 1450 IF K>=0.25 THEN PRINT TAB(38)"- / - - / - - 0 - - / -":GOTO 1500
- 1460 PRINT TAB(34)USING L$;XL;
- 1470 PRINT TAB(44)USING L$;L;
- 1480 PRINT TAB(54)USING L$;XC;
- 1490 PRINT TAB(64)USING L$;C;
- 1500 NEXT Z
- 1510 GOSUB 2550 'hardcopy
- 1520 '
- 1530 '.....sub-menu
- 1540 COLOR 7,0
- 1550 LOCATE 25,1:PRINT X$;
- 1560 LOCATE 24,3:COLOR 15,2
- 1570 PRINT " Press a number for a specific: 1-Frequency, 2-Length, ";
- 1580 PRINT "3-Inductance, ";
- 1590 LOCATE 25,3
- 1600 PRINT " 4-Capacitance, 5-Inductive Reactance, 6-Capacitive Reactance,";
- 1610 PRINT " or 7 to QUIT ";
- 1620 '
- 1630 COLOR 7,0
- 1640 Z$=INKEY$:IF Z$=""THEN 1640
- 1650 IF VAL(Z$)<1 OR VAL(Z$)>7 THEN 1640
- 1660 LOCATE 25,1:PRINT X$;
- 1670 IF Z$="1"THEN 1840
- 1680 IF Z$="2"THEN 1750
- 1690 IF Z$="3"THEN 1880
- 1700 IF Z$="4"THEN 2090
- 1710 IF Z$="5"THEN 1990
- 1720 IF Z$="6"THEN 2210
- 1730 IF Z$="7"THEN 2520
- 1740 '
- 1750 '.....length
- 1760 COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 1770 COLOR 0,7:PRINT " ENTER: Specified length....(";UM$;")";:INPUT LG
- 1780 IF UM=1 THEN LG=LG*0.3048
- 1790 K=LG/W
- 1800 LOCATE CSRLIN-1:PRINT X$;
- 1810 LOCATE CSRLIN-1,8:GOTO 1360
- 1820 GOSUB 2550:GOTO 1530
- 1830 '
- 1840 '.....frequency
- 1850 COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 1860 COLOR 0,7:GOTO 1100
- 1870 '
- 1880 '.....inductance
- 1890 COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 1900 COLOR 0,7:LOCATE 23
- 1910 INPUT " ENTER: Inductance (>H)";L
- 1920 XL=L*2*PI*FO
- 1930 LG=W*ATN(XL/ZIN)/(2*PI)
- 1940 K=LG/W
- 1950 LOCATE CSRLIN-1:PRINT X$;
- 1960 LOCATE CSRLIN-1,8:GOTO 1360
- 1970 GOSUB 2550:GOTO 1530
- 1980 '
- 1990 '.....inductive reactance
- 2000 COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 2010 COLOR 0,7:LOCATE 23
- 2020 INPUT " ENTER: Inductance Reactance XL (ohms)";XL
- 2030 LG=W*ATN(XL/ZIN)/(2*PI)
- 2040 K=LG/W
- 2050 LOCATE CSRLIN-1:PRINT X$;
- 2060 LOCATE CSRLIN-1,8:GOTO 1360
- 2070 GOSUB 2550:GOTO 1530
- 2080 '
- 2090 '.....capacitance
- 2100 COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 2110 COLOR 0,7:LOCATE 23
- 2120 INPUT " ENTER: Capacitance (pF)";C
- 2130 IF C<=0 THEN LG=0:K=0:GOTO 2170
- 2140 XC=10^6/(2*PI*FO*C)
- 2150 LG=W*ATN(ZIN/XC)/(2*PI)
- 2160 K=LG/W
- 2170 LOCATE CSRLIN-1:PRINT X$;
- 2180 LOCATE CSRLIN-1,8:GOTO 1360
- 2190 GOSUB 2550:GOTO 1530
- 2200 '
- 2210 '.....capacitive reactance
- 2220 COLOR 7,0:VIEW PRINT 23 TO 24:CLS:VIEW PRINT:LOCATE 23
- 2230 COLOR 0,7:LOCATE 23
- 2240 INPUT " ENTER: Capacitance Reactance XC (ohms)";XC
- 2250 IF XC<=0 THEN K=0.25:LG=W/4:GOTO 2280
- 2260 LG=W*ATN(ZIN/XC)/(2*PI)
- 2270 K=LG/W
- 2280 LOCATE CSRLIN-1:PRINT X$;
- 2290 LOCATE CSRLIN-1,8:GOTO 1360
- 2300 GOSUB 2550:GOTO 1530
- 2310 '
- 2320 '.....diagram
- 2330 J=14
- 2340 COLOR 0,7
- 2350 LOCATE ,J:PRINT " "
- 2360 LOCATE ,J:PRINT " ERRTHENTHENshieldTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION ERRTHENTHENshieldTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENTHENOPTION "
- 2370 LOCATE ,J:PRINT " SOUNDSOUNDSOUNDSOUNDlineSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND SOUNDSOUNDSOUNDSOUNDlineSOUNDSOUNDSOUNDSOUNDBSAVESOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND "
- 2380 LOCATE ,J:PRINT " ERLTHENTHENTHENTHENTHENTHENTHENTHENTHENFNTHENCALLTHENFNTHENTHENTHENTHENTHENTHENTHENTHENSAVE ERLTHENTHENTHENTHENTHENTHENTHENTHENTHENFNTHENCALLTHENFNTHENTHENTHENTHENTHENTHENTHENTHENSAVE "
- 2390 LOCATE ,J:PRINT " OPEN CALL OPEN OPEN CALL OPEN "
- 2400 LOCATE ,J:PRINT " OPEN CALL OPEN OPEN CALL OPEN "
- 2410 LOCATE ,J:PRINT " OPEN CALL OPEN OPEN CALL OPEN "
- 2420 LOCATE ,J:PRINT " OPEN CALL OPEN VARPTR<0xB6!> CALL OPEN "
- 2430 LOCATE ,J:PRINT " NOTSOUNDCALLSOUNDMERGE CALLNOTSOUNDCALLSOUNDMERGE "
- 2440 LOCATE ,J:PRINT " CLSSOUNDSOUND' "
- 2450 LOCATE ,J:PRINT " OPEN STUB SHORTED STUB "
- 2460 LOCATE ,J:PRINT " "
- 2470 COLOR 7,0
- 2480 RETURN
- 2490 '
- 2500 '.....end
- 2510 GOSUB 2550
- 2520 ERASE C$:GOTO 300 'start
- 2530 END
- 2540 '
- 2550 'HARDCOPY
- 2560 GOSUB 2670:LOCATE 25,2:COLOR 14,6
- 2570 PRINT " Press 1 to print screen, 2 to print screen & ";
- 2580 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 2590 Z$=INKEY$:IF Z$="3"THEN GOSUB 2670:RETURN
- 2600 IF Z$="1"OR Z$="2"THEN GOSUB 2670:GOTO 2620
- 2610 GOTO 2590
- 2620 FOR QX=1 TO 24:FOR QY=1 TO 80
- 2630 LPRINT CHR$(SCREEN(QX,QY));
- 2640 NEXT QY:NEXT QX
- 2650 IF Z$="2"THEN LPRINT CHR$(12)
- 2660 GOTO 2560
- 2670 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-